<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类里面添加方法</title>
    <script>
        /* 
            方法添加方式有两种
        
        */
       class Person{
            // 创建实例属性
            name='孙悟空';

            // 第一种在类里面添加方法的方法
            fn1=()=>{
                console.log('hello world!')
            };

            sayhello=function fn2(){
                console.log('函数声明创建的函数')
            }

            
             // 第二种在类里面添加方法的方法（实例方法，实例方法中的this就是调用该方法的对象，也就是当前实例p1）   这种方法在通过实例没有打印出来，但是能调用
            fn3(){
                console.log('第二种在类里面添加实例方法的方法')
                console.log('大家好，我是'+this.name,`我今年${this.age}岁了`)
            }
            
            //========================================================================
            // 创建静态属性
            static h1="静态属性"

            //静态方法
            static fn4(){
                console.log('这是一个静态方法')
                console.log(`静态方法的this`,this.h1)   // 静态方法中的this就是当前的类
            }
        }



       // 实例属性只能通过实例对象来访问，简历实例对象p1来访问实例属性
       const p1=new Person()
            p1.age=20

        console.log(Person)
        console.log(p1)         //访问实例对象
        console.log(p1.fn1)     //访问实例对象里的方法
        console.log(p1.fn1())   //调用实例对象里的方法
        console.log(p1.sayhello())
        console.log(p1.fn3)
        console.log(p1.fn3())
        /* ============================== */
        //静态方法

        console.log(Person.fn4())
    </script>
</head>
<body>
    
</body>
</html>